package com.fs.erp.api.basedata.controller;

import com.fs.erp.api.basedata.bo.product.info.QueryProductBo;
import com.fs.erp.api.basedata.entity.Product;
import com.fs.erp.api.basedata.service.ProductService;
import com.fs.erp.api.basedata.vo.QueryProductVo;
import com.fs.erp.api.basedata.vo.product.UpdateProductVo;
import com.fs.erp.common.utils.CollectionUtil;
import com.fs.erp.mybatis.resp.PageResult;
import com.fs.erp.mybatis.utils.PageResultUtil;
import com.fs.erp.web.controller.DefaultBaseController;
import com.fs.erp.web.resp.InvokeResult;
import com.fs.erp.web.resp.InvokeResultBuilder;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.validation.Valid;
import java.util.List;
import java.util.stream.Collectors;

/**
 * 商品管理
 */
@Validated
@RestController
@RequestMapping("/basedata/product")
public class ProductController extends DefaultBaseController {
    @Autowired
    private ProductService productService;

    /**
     * 修改
     */
    @PutMapping
    public InvokeResult<Void> update(@Valid UpdateProductVo vo){
        productService.updateProduct(vo);
        return InvokeResultBuilder.success();
    }

//    /**
//     * 商品列表
//     * @param vo
//     * @return
//     */
//    @GetMapping("/query")
//    public InvokeResult<PageResult<QueryProductBo>> query(@Valid QueryProductVo vo){
//        PageResult<Product> pageResult=productService.query(getPageIndex(vo),getPageSize(vo),vo);
//
//        List<Product> products=pageResult.getDatas();
//        List<QueryProductBo> bos=null;
//
//        if (!CollectionUtil.isEmpty(products)){
//            bos=products.stream().map(QueryProductBo::new).collect(Collectors.toList());
//        }
//        return InvokeResultBuilder.success(PageResultUtil.rebuild(pageResult,bos));
//    }
}
